class UnsupportCircuitException(Exception):
    def __init__(self, circuit_name : str) -> None:
        self.circuit_name : str = circuit_name

    def __str__(self) -> str:
        return f'Unkown circuit \'{self.circuit_name}\'!!!'

class AssumptionValidException(Exception):
    def __init__(self, *args: object) -> None:
        super().__init__(*args)
    
    def __str__(self) -> str:
        return super().__str__()

class RTLParseException(Exception):
    def __init__(self, msg : str) -> None:
        self.__msg : str = msg

    def __str__(self) -> str:
        return f'{self.__msg}'
    
class RTLScanException(Exception):
    def __init__(self, line : int, lexeme : str) -> None:
        self.__line = line
        self.__lexeme = lexeme
    
    def __str__(self) -> str:
        return f'Unkown token {self.__lexeme} in line {self.__line}'
